<?php


namespace app\common;


use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception;
use think\exception\ErrorException;

class SheetXlsx
{
    /**
     * @param $taiSheetPath 上传文件存放路径
     * @param $col_start 表格开始列
     * @param $col_end 表格结束列
     * @return array|\think\response\Json 返回解析的数据|数据解析失败
     */
    public function get($taiSheetPath, $col_start, $col_end)
    {
        try {
            //创建读取过滤器的实例
            $filterSubset = new ExcelReadFilter($col_start, $col_end);
            //创建xlsx类型的新读取器
            $reader = IOFactory::createReader('Xlsx');
            //读取器设置筛选条件
            $reader->setReadFilter($filterSubset);
            //仅将与过滤器匹配的列加载到电子表格中。
            $spreadsheet = $reader->load($taiSheetPath);
        } catch (Exception $e) {
            return rejson(0, null, '数据读取错误，请重试', 501);
        }
        //输出为数组
        $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
        return $sheetData;
    }
}